package adapterDemo;

/**********************************************
 * 1.想要实现你想转换成的类型接口，也就是你的客户所期望看到的接口
 *   implements Duck
 * 2.取得适配对象的引用
 * 3. 需要实现接口中所有的方法
 *
 *
 ***********************************************/
public class TurkeyAdapter implements Duck {
    private final Turkey turkey;

    //2 取得适配对象的引用
    public TurkeyAdapter(Turkey turkey) {
        this.turkey = turkey;
    }

    /****************
     * quack在类之间的转换很简单，只要调用gobble就可以了
     */
    @Override
    public void quack() {
        turkey.gobble();
    }

    /*****
     * 固然两个接口都具有了fly方法，火鸡的飞行距离很短，不像鸭子可以长途飞行
     * 必须连续5次调用火鸡的fly来完成
     */
    @Override
    public void fly() {
        for (int i = 0; i < 5; i++) {

            turkey.fly();
        }
    }
}
